import { isNull } from '../utils/isNull'
// 清除对象每一项为undefined 或 null的属性
export const clearObj = (obj, err = '传入参数非对象') => {
  if (!~Object.prototype.toString.call(obj).indexOf('Object')) {
    throw new Error(err)
  }
  const key = Object.keys(obj)
  key.forEach(v => {
    // 当前项为 undefined 或 null时执行删除
    isNull(obj[v]) && delete obj[v]
  })
  return obj
}

// 清除数组对象每一项为undefined 或 null的属性
export const clearArr = (arr) => {
  if (!~Object.prototype.toString.call(arr).indexOf('Array')) {
    throw new Error('传入参数非数组')
  }
  return arr.map(v => clearObj(v))
}
